//-------------------------------------------------------------------------------------------------
// Copyright (c) Bradford W. Mott and Flare Contributors
// North Carolina State University, Department of Computer Science
// The IntelliMedia Group
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
// SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//----------------------------------------------------------------------------------------------------

using UnityEngine;
using UnityEditor;

public class SwfImporter : AssetPostprocessor
{
    public static void OnPostprocessAllAssets(string[] importedAssets,
        string[] deletedAssets,
        string[] movedAssets,
        string[] movedFromAssetsPaths)
    {
        foreach (string path in importedAssets)
        {
            if (path.EndsWith(".swf", true, null))
            {
                string assetFile = path.Substring(0, path.Length - 4) + ".asset";

                bool createdAsset = false;
                SwfAsset asset = AssetDatabase.LoadAssetAtPath(assetFile,
                    typeof(SwfAsset)) as SwfAsset;
                if (asset == null)
                {
                    asset = ScriptableObject.CreateInstance(typeof(SwfAsset)) as SwfAsset;
                    asset.Version = SwfAsset.CurrentVersionNumber;
                    createdAsset = true;
                }

                // Copy SWF file contents into the SwfAsset
                asset.Bytes = global::System.IO.File.ReadAllBytes(path);

                if (createdAsset)
                {
                    AssetDatabase.CreateAsset(asset, assetFile);
                }
                else
                {
                    EditorUtility.SetDirty(asset);
                    AssetDatabase.SaveAssets();
                    AssetDatabase.Refresh();
                }
            }
        }
    }
}
